/**
 * window.localStorage 浏览器永久缓存
 * @method set 设置永久缓存
 * @method get 获取永久缓存
 * @method remove 移除永久缓存
 * @method clear 移除全部永久缓存
 */
export default {
  // 查看 v2.4.3版本更新日志
  setKey(key: string) {
    // @ts-ignore
    return `XSFWEB:${key}`;
  },
  // 设置永久缓存
  set<T>(key: string, val: T) {
    if (import.meta.client) {
      const keyTag = key === 'token' ? key : this.setKey(key)
      window.localStorage.setItem(keyTag, JSON.stringify(val));
    }
  },
  // 获取永久缓存
  get(key: string) {
    if (import.meta.client) {
      const keyTag = key === 'token' ? key : this.setKey(key)
      let json = <string>window.localStorage.getItem(keyTag);
      return JSON.parse(json);
    }
  },
  // 移除永久缓存
  remove(key: string) {
    if (import.meta.client) {
      const keyTag = key === 'token' ? key : this.setKey(key)
      window.localStorage.removeItem(keyTag);
    }
  },
  // 移除全部永久缓存
  clear() {
    if (import.meta.client) {
      window.localStorage.clear();
    }
  },
  // 获取当前存储的 token
  getToken() {
    return this.get('token');
  },
  setToken(token: string) {
    return this.set('token', token);
  },
  removeToken() {
    return this.remove('token');
  },
  // 获取当前的用户
  getUserInfo() {
    return this.get('userInfo');
  },
  setUserInfo(val: any) {
    return this.set('userInfo', val);
  },
  removeUserInfo() {
    return this.remove('userInfo');
  },
};

